package com.cfpl.admin_service.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cfpl.admin_service.DTO.LoginFormDTO;
import com.cfpl.admin_service.VO.AdminLoginVO;
import com.cfpl.project_common.pojo.Admin;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cfpl.project_common.pojo.Permission;
import org.apache.ibatis.annotations.Param;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.util.List;

/**
* @author 14720
*  2023-10-10 11:09:05
*/
public interface AdminService {

    /**
     * 添加管理员
     */
    void insertAdmin(Admin admin);

    /**
     * 删除管理员
     */
    void adminSwitch(Long adminId);

    /**
     * 修改管理员
     */
    void updateAdmin(Admin admin);

    /**
     * 查询管理员  手机号，邮箱，
     */
    Admin loginQueryAdmin(String queryCondition);

    /**
     * 分页查询
     * @param currentPage 当前页
     * @param pageSize  每页条数
     * @return 分页对象
     */
    Page<Admin> queryPage(int currentPage, int pageSize,String condition);


    Admin queryAdminById(Long adminId);

    /**
     * 给管理员分配角色信息
     * @param adminId 管理员编号
     * @param roleIds 角色编号
     */
    void assignAdminRoles(Long adminId, Long[] roleIds);

    /**
     * 查询对应权限
     * @param aid 管理员编号
     * @return
     */
    List<Permission> queryAllPermissionByUserName(Long aid);

    /**
     * 验证管理员
     * @param loginFormDTO 管理员登录信息
     * @return toke
     */
    AdminLoginVO verifyAdminInfo(LoginFormDTO loginFormDTO);

    void logOut(HttpServletRequest request);

    boolean checkPathExisted(File file);

    void updateAdminHeadPic(String filename,Long adminID);
}
